/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package facades;

import entities.Almacen;
import entities.LineaEnvioTraspasoMercancia;
import entities.LineaPeticionTraspasoMercancia;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author damfercer
 */
@Stateless
public class LineaPeticionTraspasoMercanciaFacade extends AbstractFacade<LineaPeticionTraspasoMercancia> {
    @PersistenceContext(unitName = "CorporatePU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public LineaPeticionTraspasoMercanciaFacade() {
        super(LineaPeticionTraspasoMercancia.class);
    }
    
    public List<LineaPeticionTraspasoMercancia> getLineasPeticionesPendientesDeAlmacen(Almacen a){
        List<LineaPeticionTraspasoMercancia> lineasPendientes=new ArrayList<LineaPeticionTraspasoMercancia>();
        Query q=em.createNamedQuery("LineaPeticionTraspasoMercancia.findByIdAlmacen",LineaPeticionTraspasoMercancia.class);
        q.setParameter("idAlmacen", a.getIdAlmacen());
        List<LineaPeticionTraspasoMercancia> lineaspeticiones= q.getResultList();
        for (LineaPeticionTraspasoMercancia lineaPeticionTraspasoMercancia : lineaspeticiones) {
            Integer cantidadEnviada=0;
            if(lineaPeticionTraspasoMercancia.getLineaEnvioTraspasoMercanciaList()==null || lineaPeticionTraspasoMercancia.getLineaEnvioTraspasoMercanciaList().isEmpty()){
                lineasPendientes.add(lineaPeticionTraspasoMercancia);
            }
            else{
               for (LineaEnvioTraspasoMercancia lineaEnvioTraspasoMercancia: lineaPeticionTraspasoMercancia.getLineaEnvioTraspasoMercanciaList()) {
                    cantidadEnviada+=lineaEnvioTraspasoMercancia.getCantidad();
               }  
               if(cantidadEnviada<lineaPeticionTraspasoMercancia.getCantidad()){
                    lineasPendientes.add(lineaPeticionTraspasoMercancia);
               }
            }

                       
        }
        return lineasPendientes;
    }
    
}
